home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Bavarian / Bavarian #129 (19xx)(APS Electronic).zip / Bavarian #129 (19xx)(APS Electronic).adf / apaint.bas < prev    next >
BASIC Source File  |  1986-02-01  |  6KB  |  160 lines

  1. 100   '          ==== APAINT ====
  2. 110   '
  3. 120   '    Copyright 1985  Colin French
  4. 130   '    Last Revision:  24/02/86 CJF
  5. 140   '
  6. 150   ' Although this program is copyrighted,
  7. 160   ' please feel free to pass on copies to
  8. 170   ' friends and user groups, so long as
  9. 180   ' you don't do it for profit. All other
  10. 190   ' rights are reserved by the author.
  11. 200   '
  12. 210   ' This program will do the initialization
  13. 220   ' for APaint and then chain in the main
  14. 230   ' program. Please look under the 'Extras'
  15. 240   ' menu in APaint for information on making
  16. 250   ' copies. For more information on APaint,
  17. 260   ' and how to use the pictures you create
  18. 270   ' in your own programs, run APAINT.HINTS.
  19. 280   '
  20. 290   ' If you find any bugs, or make improvements
  21. 300   ' to APaint, I'd like to hear from you. Write:
  22. 310   '
  23. 320   '       Colin French
  24. 330   '       2144 Iris Street
  25. 340   '       Ottawa, Ontario
  26. 350   '       K2C 1B3
  27. 360   '
  28. 370   ' Note: Please do not remove these comments.
  29. 380   ' It will not increase execution speed at all.
  30. 390   '
  31. 400   '
  32. 410   '    +----------------------+
  33. 420   '    |    INITIALIZATION    |
  34. 430   '    +----------------------+
  35. 440   '
  36. 450   SCREEN 0,5:FONT 1:GRAPHIC 1:DRAWMODE 0
  37. 460   DIM STDCLR%(31,2),ACLR%(31,2),TCLR%(31,2),CCLR%(95)
  38. 470   FOR N=0 TO 31  'save standard colors
  39. 480   ASK RGB N,STDCLR%(N,0),STDCLR%(N,1),STDCLR%(N,2)
  40. 490   FOR N2=0 TO 2:READ ACLR%(N,N2):TCLR%(N,N2)=ACLR%(N,N2):NEXT N2
  41. 500   RGB N,ACLR%(N,0),ACLR%(N,1),ACLR%(N,2):NEXT N
  42. 510   '    APAINT STARTING PALETTE
  43. 520   DATA 0,0,0,0,10,0,0,7,0,0,4,0
  44. 530   DATA 0,6,0,0,14,0,0,10,8,0,13,11
  45. 540   DATA 15,2,14,10,2,12,8,0,9,0,0,6
  46. 550   DATA 1,2,9,2,5,14,3,8,15,5,12,15
  47. 560   DATA 14,10,10,11,0,0,0,0,0,15,15,15
  48. 570   DATA 11,11,11,8,8,8,10,6,5,15,15,9
  49. 580   DATA 7,0,0,11,0,0,15,0,0,15,6,2
  50. 590   DATA 15,8,4,15,15,15,13,13,0,0,3,0
  51. 600   WINDOW #1,0,0,320,200,"Project  Tools  Color  Extras  Undo   ":CMD #1
  52. 610   DIM PROJMENU%(352),TOOLMENU%(1289),CLR1MENU%(1010)
  53. 620   DIM CLR2MENU%(377),EXTRMENU%(106),UNDOMENU%(29)
  54. 630   DIM MTITLFT%(4),MTITRGT%(4),NUMITEM%(4)
  55. 640   DIM MENULFT%(4),MENURGT%(4),MENUBOT%(4)
  56. 650   DIM ITEMLFT%(4,15),ITEMRGT%(4,15)
  57. 660   DIM ITEMTOP%(4,15),ITEMBOT%(4,15),ITEMHIGH%(4,15)
  58. 670   DIM PAT0%(1),PAT1%(3),PAT2%(1),PAT3%(1),PAT4%(1),PAT5%(3)
  59. 680   DIM PAT6%(3),PAT7%(3),PAT8%(15),PAT9%(15),PAT10%(15),PAT11%(1)
  60. 690   DIM UNDOBUF%(8980),EDITBUF%(8980),TPIC%(9100)
  61. 700   DIM XOFF(35),YOFF(35),CIR%(71),PTS%(63),LINPAT%(1)
  62. 710   DIM SMLBUF%(117),T%(9)
  63. 720   '    TRY TO LOAD TITLE SCREEN
  64. 730   ON ERROR GOTO 760  'if trouble, skip
  65. 740   BLOAD "APAINT.TITLE.APIC",VARPTR(TPIC%(0))
  66. 750   GSHAPE(0,0),TPIC%():GOTO 780
  67. 760   PENA 30:PRINT AT(116,70);"APAINT"
  68. 770   RESUME 780
  69. 780   ON ERROR GOTO 0  'cancel error trap
  70. 790   '    GET MENU IMAGES FROM DISK
  71. 800   BLOAD "PROJMENU",VARPTR(PROJMENU%(0))
  72. 810   BLOAD "TOOLMENU",VARPTR(TOOLMENU%(0))
  73. 820   BLOAD "CLR1MENU",VARPTR(CLR1MENU%(0))
  74. 830   BLOAD "CLR2MENU",VARPTR(CLR2MENU%(0))
  75. 840   BLOAD "EXTRMENU",VARPTR(EXTRMENU%(0))
  76. 850   BLOAD "UNDOMENU",VARPTR(UNDOMENU%(0))
  77. 860   '    SET UP MENU DATA
  78. 870   NUMMENU=4:FOR N=0 TO NUMMENU
  79. 880   READ MTITLFT%(N),MTITRGT%(N),NUMITEM%(N)
  80. 890   READ MENULFT%(N),MENURGT%(N),MENUBOT%(N)
  81. 900   FOR N2=0 TO NUMITEM%(N)
  82. 910   READ ITEMLFT%(N,N2),ITEMRGT%(N,N2)
  83. 920   READ ITEMTOP%(N,N2),ITEMBOT%(N,N2),ITEMHIGH%(N,N2)
  84. 930   NEXT N2,N
  85. 940   '    Project menu data
  86. 950   DATA 0,55,5,0,79,69
  87. 960   DATA 3,76,3,12,1,3,76,12,21,1
  88. 970   DATA 3,76,21,30,1,3,76,30,39,1
  89. 980   DATA 3,76,39,48,1,3,76,56,65,1
  90. 990   '    Tools menu data
  91. 1000  DATA 72,111,2,8,296,142
  92. 1010  DATA 14,287,14,37,0,14,287,52,75,0
  93. 1020  DATA 14,287,91,135,0
  94. 1030  '    Color menu data
  95. 1040  DATA 128,167,14,8,296,111
  96. 1050  DATA 17,68,21,28,1,17,68,29,36,1
  97. 1060  DATA 17,68,37,44,1,17,68,45,52,1
  98. 1070  DATA 17,68,53,60,1,17,68,61,68,1
  99. 1080  DATA 81,152,14,45,0,209,290,14,45,0
  100. 1090  DATA 97,158,52,57,0,97,158,60,65,0
  101. 1100  DATA 97,158,68,73,0,225,286,52,57,0
  102. 1110  DATA 225,286,60,65,0,225,286,68,73,0
  103. 1120  DATA 92,289,86,106,0
  104. 1130  '    Extras menu data
  105. 1140  DATA 184,231,1,176,299,25
  106. 1150  DATA 179,295,3,12,1,179,295,12,21,1
  107. 1160  '    Undo menu data
  108. 1170  DATA 248,279,0,240,287,17
  109. 1180  DATA 246,281,3,14,1
  110. 1190  '
  111. 1200  '    SET UP LINE PATTERNS USED
  112. 1210  LINPAT%(0)=65535:LINPAT%(1)=61680
  113. 1220  '
  114. 1230  '    SET UP AREA FILL PATTERNS
  115. 1240  PAT0%(0)=65535:PAT0%(1)=65535
  116. 1250  FOR N=0 TO 3:READ PAT1%(N):NEXT
  117. 1260  DATA 48059,65535,61166,65535
  118. 1270  PAT2%(0)=48059:PAT2%(1)=61166
  119. 1280  PAT3%(0)=43690:PAT3%(1)=21845
  120. 1290  PAT4%(0)=17476:PAT4%(1)=4369
  121. 1300  FOR N=0 TO 3:READ PAT5%(N):NEXT
  122. 1310  DATA 17476,0,4369,0
  123. 1320  FOR N=0 TO 3:READ PAT6%(N):NEXT
  124. 1330  DATA 52428,39321,13107,26214
  125. 1340  FOR N=0 TO 3:READ PAT7%(N):NEXT
  126. 1350  DATA 8738,4369,34952,17476
  127. 1360  FOR N=0 TO 15:READ PAT8%(N):NEXT
  128. 1370  DATA 1285,2570,7453,15934,32639,15934,23644,10280
  129. 1380  DATA 20560,41120,53713,58339,63479,58339,50629,33410
  130. 1390  FOR N=0 TO 15:READ PAT9%(N):NEXT
  131. 1400  DATA 3036,5742,60471,59603,59859,60851,63075,15300
  132. 1410  DATA 56331,28182,14316,54248,54249,46061,25590,50235
  133. 1420  FOR N=0 TO 15:READ PAT10%(N):NEXT
  134. 1430  DATA 65503,65503,92,65503,65503,65503,23644,23644
  135. 1440  DATA 23644,57343,23552,57343,57343,57343,23644,23644
  136. 1450  PAT11%(0)=61166:PAT11%(1)=61166
  137. 1460  '
  138. 1470  '    CALCULATE CIRCLE OFFSETS
  139. 1480  FOR N=0 TO 35:N2=(N*10)/180*PI
  140. 1490  XOFF(N)=COS(N2):YOFF(N)=SIN(N2)
  141. 1500  NEXT
  142. 1510  '
  143. 1520  '    VARIOUS VARIABLES
  144. 1530  PROJNAME$=""
  145. 1540  TOOL=1:BRUSH=0:PAT=0
  146. 1550  FCLR=9:BCLR=(-1):DRWMD=0
  147. 1560  PENA FCLR:DRAWMODE DRWMD
  148. 1570  PENO 29:OUTLINE 0
  149. 1580  DRIVE$="DF0:"
  150. 1582  DIM NAME$(3,30),NUMNAME%(3),SUFF$(3),FILTYP$(3),DSKBLK%(9)
  151. 1584  FILTYP$(1)="Picture":SUFF$(1)=".APIC"
  152. 1586  FILTYP$(2)="Palette":SUFF$(2)=".APAL"
  153. 1588  FILTYP$(3)="Clipping":SUFF$(3)=".ACLP"
  154. 1590  '
  155. 1600  '    CHAIN TO MAIN PROGRAM
  156. 1610  '
  157. 1612  PENA 0:BOX(35,162;261,172),1
  158. 1620  PENA 1:PRINT AT(64,170);"Loading main program..."
  159. 1630  CHAIN "APAINT.MAIN",600,ALL
  160.